pandas: Series
from pandas
pandas: DataFrameの各列を構成する1次元の配列
indexで要素にアクセスできる
docs
#WIP
PandasArray
ndarrayの拡張
code:py
s = pd.Series(1, 2, 3, 4, 5)
s.array
# <NumpyExtensionArray>
NumpyExtensionArrayと表示されるなmrsekut.icon
PandasArrayと同じものなのかそうでないのかわからない #??
pandas: Seriesの生成
pd.Series
リストや配列、辞書などからpandas: Seriesを作成
code:python
s = pd.Series(1, 2, 3, 4, 5)
print(s) # 出力: 0 1
# 1 2
# 2 3
# 3 4
# 4 5
# dtype: int64
インデックスを指定してpandas: Seriesを作成
code:python
s = pd.Series(1, 2, 3, 4, 5, index='a', 'b', 'c', 'd', 'e')
print(s) # 出力: a 1
# b 2
# c 3
# d 4
# e 5
# dtype: int64
辞書からpandas: Seriesを作成
code:python
s = pd.Series({'a': 1, 'b': 2, 'c': 3})
print(s) # 出力: a 1
# b 2
# c 3
# dtype: int64
pandas: Seriesの基本属性
Series.index
インデックス(ラベル)のリストを取得
code:python
s = pd.Series(1, 2, 3, index='a', 'b', 'c')
print(s.index) # 出力: Index('a', 'b', 'c', dtype='object')
Series.values
データの配列を取得
code:python
print(s.values) # 出力: 1 2 3
Series.dtype
データの型を取得
code:python
print(s.dtype) # 出力: int64
Series.name
pandas: Seriesに名前を付ける、または取得j
code:python
s.name = "my_series"
print(s.name) # 出力: my_series
pandas: Seriesの基本操作
インデックス参照
インデックス(ラベル)を指定して要素を取得
code:python
print(s'a') # 出力: 1
スライス
インデックス範囲を指定して複数の要素を取得
code:python
print(s'a':'c') # 出力: a 1
# b 2
# c 3
# dtype: int64
ブールインデックス
条件に基づいて要素をフィルタリング
code:python
print(ss > 2) # 出力: c 3
# dtype: int64
おもろい構文だなmrsekut.icon
値の更新
指定したインデックスの値を更新
code:python
s'a' = 10
print(s) # 出力: a 10
# b 2
# c 3
# dtype: int64
pandas: Seriesの基本演算
要素ごとの演算
各要素に対してスカラー値の演算を行う
code:python
print(s + 2) # 出力: a 12
# b 4
# c 5
# dtype: int64
pandas: Series同士の演算
同じインデックスを持つpandas: Series間での演算を行う
code:python
s1 = pd.Series(1, 2, 3, index='a', 'b', 'c')
s2 = pd.Series(4, 5, 6, index='a', 'b', 'c')
print(s1 + s2) # 出力: a 5
# b 7
# c 9
# dtype: int64
欠損値への対応
異なるインデックスのpandas: Series同士で演算する際、インデックスが一致しない場合はNaNが挿入される
code:python
s3 = pd.Series(7, 8, index='a', 'd')
print(s1 + s3) # 出力: a 8.0
# b NaN
# c NaN
# d NaN
# dtype: float64
pandas: Seriesの集計関数
- sum: 要素の合計を計算
- mean: 要素の平均を計算
- max, min: 要素の最大値、最小値を計算
- count: 非欠損値の要素数を計算
- value_counts: ユニークな値の出現回数をカウント
code:python
s = pd.Series(1, 2, 3, 3, 4, 5, 5, 5)
print(s.sum()) # 出力: 28
print(s.mean()) # 出力: 3.5
print(s.max()) # 出力: 5
print(s.value_counts()) # 出力: 5 3
# 3 2
# 1 1
# 2 1
# 4 1
# dtype: int64
pandas: Seriesの結合と操作
append
2つのpandas: Seriesを結合する
code:python
s4 = pd.Series(6, 7, index='f', 'g')
print(s.append(s4)) # 出力: 0 1
# 1 2
# 2 3
# 3 3
# 4 4
# 5 5
# 6 5
# 7 5
# f 6
# g 7
# dtype: int64
drop
指定したインデックスの要素を削除
code:python
print(s.drop('a', 'b')) # 出力: c 3
# d 4
# e 5
# dtype: int64